This application is based on application No. H11-026272 filed in Japan, the content of which is hereby incorporated by reference.
1. Field of the Invention
The present invention relates to an apparatus that manages the configuration of a plurality of programs, which are stored in an electrical appliance and provide functions of the electrical appliance. More particularly, the present invention relates to a program configuration management apparatus for downloading programs sent via a communication channel and revising programs in a communication terminal device using the downloaded programs.
2. Background Art
Programs installed in communication terminal devices, such as tuners used for digital satellite broadcasts and CATVs (Cable Televisions), are conventionally updated by downloading new versions of the programs sent via transmission channels in their entirety and completely replacing old versions in non-volatile memories, such as flash memories, of the communication terminal devices with the new versions. Old versions are not erased during the updating and are kept as recovery programs to guarantee the functioning of the communication terminal devices.
As the variety of communication services, such as satellite broadcasts and CATVs, has increased in recent years, so have the functions that communication terminal devices need to perform. As a result, the software installed in the communication terminal devices has also increased in size. Consequently, with the aforementioned conventional method where programs are updated by downloading entire new versions, it is only realistically possible for a communication terminal device to keep one previous version as a backup. Therefore, if a new version downloaded for a bug fix also contains bugs, the communication terminal device will be left with no fully functioning program.
Also, since the presence of bugs in only certain parts of a current version will necessitate the downloading of an entire new version, there is the problem that transmission channels are unnecessarily occupied by program downloads.
This problem could potentially be solved by dividing the programs required by the communication terminal devices into small units (modules) according to functions and updating programs in module units. However, when the number of modules becomes very large or the number of versions increases due to repeated program updates, there will be an explosive increase in the number of combinations of modules. As a result, checking whether each module combination is executable becomes an enormous burden. Also, when new versions downloaded into communication terminal devices contain bugs or are not fully compatible with other programs that have already been downloaded, the new versions hinder the functioning of the other programs that hitherto operated normally.
The present invention relates to a program configuration management apparatus that is used for a communication terminal device, which downloads the entire new version of a program or each module of the new version and updates a current version with the downloaded new version or module. In view of the stated problems, the present program configuration management apparatus avoids the inconvenience that a defective downloaded version or module may hinder the functioning of other programs that hitherto operated properly.
The stated object is achieved by a program configuration management apparatus that is used for a communication terminal device and manages a configuration of programs for providing functions of the communication terminal device, the program configuration management apparatus including: a download unit for downloading a program via a communication channel; a program holding unit for holding the downloaded program as well as at least one previous version of the downloaded program; and a previous version reinstallation unit for receiving a previous version reinstallation designation for a specific program held in the program holding unit, invalidating a current version of the specific program, and validating a previous version of the specific program.
With this construction, the program configuration management apparatus of the present invention validates previous versions stored in the communication terminal device. Therefore, even if programs that are newly downloaded for version-up contain bugs, the program configuration management apparatus restores the state (program configuration) of the communication terminal device to the original state where the communication terminal device functioned properly. As a result, a situation where programs downloaded for version-up impair the functioning of the communication terminal device is avoided.
Here, the program holding unit may include: a program holding unit for holding each program downloaded by the download unit, and a management information holding unit for holding management information that shows a name, a version, and validity information for each program in the program holding unit, the validity information showing whether a program is valid or invalid, with programs whose validity information is valid being selected as execution objects, and the previous version reinstallation unit may include: a receiving unit for receiving a designation of a name of the specific program and a reinstallation target version of the specific program; and a reinstallation unit for validating a previous version of the specific program by changing the validity information of a certain version of the specific program, the certain version being a most recent version, out of the reinstallation target version and older versions of the specific program, in the program holding unit.
With this construction, when it is necessary to invalidate the current version of a program and validate another version of the program, it is enough to change validity information related to the versions. Therefore, an operation for invalidating the latest version of a program and validating a previous version is simplified.
Here, the program configuration management apparatus may further include a history information holding unit for holding history information giving a name, a version, a downloading date and time, and an invalidation date and time for each of the downloaded programs, the downloading date and time showing when a program was downloaded and the invalidation date and time showing when a program that has been invalidated was invalidated, where the management information also shows the names and versions of programs that have dependent relations with individual programs in the program holding unit, and the previous version reinstallation unit further includes: a related program reinstallation unit that identifies all programs which have dependent relations with the specific program by referring to the management information, and validates a suitable version of each identified program by referring to the history information, the suitable version of each identified program being the version that was downloaded at a latest time prior to the invalidation date and time of the version validated by the reinstallation unit.
With this construction, the program configuration management apparatus validates previous versions of a specified program and other programs having dependent relations with the specified program. In this manner, the program configuration management apparatus validates a program set where compatibilities between programs are maintained. Therefore, a situation where a reinstalled previous version impairs the functioning of other programs due to the incompatibilities between versions is avoided.
Here, the program configuration management apparatus may further include a test unit for performing a test execution on each downloaded program and writing only programs that pass the test execution into the program holding unit. With this construction, even if a newly downloaded program contains critical bugs, for instance, a worst case where the downloaded program renders the communication terminal device completely inoperative is avoided.
Here, the download unit may download test conditions and pass/fail evaluation criteria together with each program, and the test unit may perform a test execution on each downloaded program using the test conditions downloaded with the program and judge whether the program has passed the test execution according to the pass/fail evaluation criteria downloaded with the program. With this construction, the sending side of a program who thoroughly familiar with the specification of the program sets information, such as test conditions and pass/fail criteria, and sends the information to the communication terminal device. As a result, the program is definitely subjected to an appropriate test execution.
Here, the test unit may include a test result saving unit for saving a result of the test execution of each downloaded program so that the result is associated with the downloaded program, where before a downloaded program is subjected to a test execution, the test unit refers to the test result saving unit and terminates the test execution if the downloaded program failed a previous test execution. With this construction, a situation where a program that has failed a previous test execution is unnecessarily downloaded and subjected to a test execution again is avoided.
Here, the program configuration management apparatus may further include: a removable, non-volatile memory; a backup unit for copying a designated program from the program holding unit to the non-volatile memory, management information related to the designated program from the management information holding unit to the non-volatile memory, and history information related to the designated program from. the history information holding unit to the non-volatile memory; and a restoring unit for copying the copied program from the non-volatile memory to the program holding unit, the copied management information from the non-volatile memory to the management information holding unit, and the copied history information from the non-volatile memory to the history information holding unit. The non-volatile memory is used to store backup copies of programs stored in the communication terminal device or to transfer programs from a communication terminal device into another communication terminal device. Therefore, even if programs downloaded for version-up hinder the functioning of the communication terminal device, for instance, the communication terminal device is restored to a functioning condition with the backup copies.
Here, the program configuration management apparatus may further include a relocation unit for receiving a designation of an unwanted version of a program, erasing the unwanted version and all earlier versions of the program from the program holding unit, and relocating remaining programs in the program holding unit to combine blank areas where the erased versions were previously stored. With this construction, even if programs are stored in a memory, such as a flash memory, where data is erased in blocks, only unnecessary programs are erased. As a result, the utilization ratio of the memory rises.
Here, the download unit and the previous version reinstallation unit may be achieved by programs that are executed in the communication terminal device, and the programs downloaded by the download unit, held in the program holding unit, and validated by the previous version reinstallation unit may include the programs for achieving the download unit and the previous version reinstallation unit. With this construction, programs that construct (provide functions of) the program configuration management apparatus as well as programs that construct the communication terminal device are downloaded. Therefore, the functions of the program configuration management apparatus are also updated or restored to an original state.
Here, the program configuration management apparatus may further include a temporary holding buffer for loading programs to be executed by the communication terminal device from the program holding unit and temporarily holding the loaded programs, where the communication terminal device executes the programs that are temporarily held in the temporary holding buffer. With this construction, all programs stored in the communication terminal device are copied to the temporary storing buffer and the programs in the temporary storing buffer are executed. Therefore, a situation where programs are destroyed by downloads is avoided.
Here, the program configuration management apparatus may further include an interaction unit for interacting with a user by displaying graphics, where the test unit performs test executions on downloaded programs that have been specified by the interaction unit. With this construction, test executions are performed only on programs that the user wishes to subject to test executions. This reduces the time necessary to find bugs contained in programs.
Here, the interaction unit may display a state of each test execution performed by the test unit using graphics and obtain pass/fail evaluation criteria for the test execution from the user. With this construction, the user visually checks whether programs run properly. This reduces the burden of debugging programs on the user.
Here, the program configuration management apparatus may further include an interaction unit for interacting with a user by displaying graphics, where the download unit downloads programs specified by the interaction unit. With this construction, because the user specifies programs to be downloaded and revised, the program configuration management apparatus incorporates the user""s usage pattern and intention into the program configuration in the communication terminal device. As a result, the program configuration management apparatus satisfies the user""s needs.
Here, the interaction unit may display all programs that have dependent relations with a program specified by the user and display a plurality of acquisition routes that are selectable as the communication channel, and the download unit may download the programs specified by the interaction unit via an acquisition route specified by the interaction unit. With this construction, even if the user does not know the name of a program that he wishes to update, he finds the program according to related programs. Also, even if a specific communication line is unusable or is jammed, programs are downloaded via another communication route to update software in a receiving apparatus.
Also, the program configuration management apparatus may include a unit for informing a center (a program distributor) of test execution results and a final program configuration via a bidirectional communication channel, such as a telephone line. With this construction, the center statistically grasps information concerning bugs in programs and incompatibilities between programs. The center uses this information to debug programs and improve quality of programs.
The stated object is also achieved by a program configuration management method where the units of the program configuration management apparatus are achieved as steps.
The stated object is further achieved by a computer-readable recording medium that records a program including the steps of the program configuration management method described above.
As described above, with the present invention, the program configuration in a communication terminal device that downloads programs and revise programs therein with the downloaded programs is restored to a previous program configuration where compatibilities between programs are maintained according to a download history. Therefore, the present invention has a great practical use as a program configuration management apparatus for a receiving apparatus intended for satellite broadcasts whose communication service variety is rapidly increasing.